#ifndef FLSYSTEM_TRSWITCH_H
#define FLSYSTEM_TRSWITCH_H

#include "FLMCUSwitch.h"

#if (FLSYSTEM_ENABLE_THREADLIB == 0)
#ifndef FLSYSTEM_SET_CUSTOM_TRANSPLANTATION
#ifdef FLSYSTEM_NORMAL_PLATFORM
#define FLSYSTEM_ENABLE_DEFAULT_LIBRARY
#define FLSYSTEM_3RD_THREAD
#else
#define FLSYSTEM_ENABLE_FREERTOS_LIBRARY
#define FLSYSTEM_3RD_FREERTOS
#endif
#else
#define FLSYSTEM_ENABLE_CUSTOM_TRANSPLANTATION
#endif
#elif (FLSYSTEM_ENABLE_THREADLIB == 1)
#define FLSYSTEM_ENABLE_DEFAULT_LIBRARY
#define FLSYSTEM_3RD_THREAD
#elif (FLSYSTEM_ENABLE_THREADLIB == 2)
#define FLSYSTEM_ENABLE_FREERTOS_LIBRARY
#define FLSYSTEM_3RD_FREERTOS
#endif

#if defined(FLSYSTEM_NORMAL_PLATFORM)

#elif defined(FLSYSTEM_MCU_PLATFORM)

#else
#error Unidentified platform
#endif

#ifdef FLSYSTEM_ENABLE_FREERTOS_LIBRARY

#if defined(FLSYSTEM_MCU_PLATFORM)
#if defined(FLSYSTEM_ARDUINO_BOARD)
#define FLSYSTEM_3RD_ARDUINO
#define FLSYSTEM_3RD_FREERTOS_ARDUINO
#elif defined(FLSYSTEM_ESPRESSIF_BOARD)
#define FLSYSTEM_3RD_FREERTOS_ESPRESSIF
#else
#define FLSYSTEM_3RD_FREERTOS_NORMAL
#endif
#elif defined(FLSYSTEM_NORMAL_PLATFORM)
#if (_MSC_VER > 0)
#define FLSYSTEM_3RD_FREERTOS_MSC_VER
#else
#define FLSYSTEM_3RD_FREERTOS_NORMAL
#endif
#else
#error "Unidentified Platform"
#endif

#endif

#include "3rdInclude.h"

#endif